Conventionally, portable electronic devices including one or more processors, data memory and a graphical user interface (GUI), for example games terminals and smart phones, employ icons to represent different functional options that are available to a user. Such icons, by way of their visual appearance, identify their corresponding functions. For example, the icons correspond to software applications, namely “Apps”, which have been downloaded to the portable electronic devices.
A term “slack space” has commonly been used to refer to an unused memory space caused by files that are smaller than a cluster (namely a “data cluster”) or a block (namely a block as a physical record) determined in a file system of the aforementioned portable electronic devices; the file system is operable to store software applications in the clusters, allocating a cluster per software application, wherein the software application has a size that is often considerably smaller than the size of a cluster. Such slack space as a technical problem has however not been considered to be bad enough to warrant changes, because the average file size in such a file system has been considerably larger, and the price of non-volatile memory has previously not been significant in the production costs of the portable electronic devices. However, recently, the situation has changed as regards integrated systems and new non-mechanical, electrically-addressed ROM memories that are considerably more expensive than mechanically-addressed memories. Therefore, the technical problem has not been recognized earlier and thus there has hitherto been no need to find a technical solution for the technical problem. Moreover, along with the development of better compression methods, such as proprietary GMVC® associated with Gurulogic Microsystems Oy, Finland, the file sizes have become increasingly smaller, which in turn has increased the slack space, for example as aforementioned wherein a compressed software application is considerably smaller in size than a cluster. Thus, there is an increased need to address such inefficiencies related to storage of data.
Gurulogic Microsystems®, namely a trademark of Gurulogic Microsystems Oy, Finland has previously invented a method of communicating data, as described in a published patent application GB 1504336.7, reference [3], namely “Method of Communicating Data Packets within Data Communication Systems”; the method produces optimal data packets for transfer in networks and file systems, thereby achieving a very cost-efficient data transfer mechanism that yields an almost theoretically maximal transfer capacity of information. It is used to combine different types of data together based upon their priorities, and it offers a better user experience than known prior art techniques, especially when employed in interactive communication systems.
Another known example of data compression concerns archives such as TAR or ZIP; TAR and ZIP are both able to archive, and if necessary to compress, a large number of files into one physical file that thus comprises an optimal data container; however, there is a technical disadvantage that files inside the archive cannot be used individually, directly without extracting the files physically into another location.
It is previously known that contemporary database systems such as Oracle, MS-SQL, MySQL and MariaDB function as highly advanced and optimal data containers; “Oracle” is a registered trademark. It is also known that their technical implementation enables a cost-efficient solution to be achieved; databases store files in the binary (BLOB) format into a database table, that usually together comprise a large physical file.
One example of such is the software application Dropbox, which integrates itself into an existing file system, thereby enabling use of files directly as if they would physically exist in the existing file system; “Dropbox” is a registered trademark. Such an approach enables an optimized data container to be achieved, except that a Dropbox-style service operates in a computing cloud environment, and is not suitable for use in a local manner in portable electronic devices. “Cloud” refers to data storage capacity available in a data communication network, for example in the contemporary Internet, even if users are unaware precisely where in the data communication network their data is stored; such cloud-based data storage usually occurs at one or more servers located in the data communication network.
Another known virtual file system based on use of a single file, described in reference [7], operates by having its files located in a virtual drive, wherein the files are directly usable individually without extraction or any additional copying into a physical location. However, even the virtual file systems are formatted into clusters (data clusters) or blocks (blocks as physical record) of pre-determined fixed size, and thus they still cause a slack space problem that is described and addressed in the present disclosure.
When a portable electronic device employs clusters as a minimum file system storage unit, use of sophisticated optimized data compression results in data, for example corresponding to graphical user interface (GUI) icons, employing even less space in memory, resulting in use of the clusters of the file system being even more inefficient.
It will be appreciated that files that are larger than the size of a cluster (data cluster) or block (block as physical record) used in the given data filing system cause slack space, because the actual content of a given file is rarely equal to the last cluster (data cluster) or block (block as physical record) reserved for the given file; in other words, files that are larger than the size of a cluster are rarely precisely of a size which is exactly an integer multiple of the size of the cluster. However, the more clusters (data clusters) or blocks (blocks as physical record) that are present in the file, the relatively less physical slack space is created in the data filing system when storing data therein.
Various known methods of storing data into data memory, and subsequently accessing the stored data, are described in following published patent application documents:                US2011/0035557 A1 (Luukkainen et al.);        US2011/0040795 A1 (Gordon et al.);        US02013/0111182 A1 (Aslot et al.);        US2009/0112951 A1 (Ryu et al.);        US2011/0106806 A1 (Tamas et al.); and        US2005/0160309 A1 (Golding et al.).        
In a published United States patent document US20080270461 A1 (Colin Stebbins Gordon; “Data containerization for reducing unused space in a file system”), there is described an apparatus and method for containerization of multiple data objects within a block of a single container. The apparatus and method is configured to pack multiple data objects together in a block of a logical container in a file system. The method includes receiving data in a form of multiple data objects to be stored in a file system, and collectively data packing the multiple data objects together in at least one block of a logical container in the file system. The block is a fundamental unit of storage space of the file system, and each block of the logical container includes multiple extents to store data from at least one data object of the multiple objects. The apparatus includes a plurality of storage devices coupled to a storage server. The storage server is configured to store the multiple data objects in at least one block of the logical container in the file system. Some data objects are stored in multiple extents of one or more blocks depending upon the size of the data object.